#include<iostream>

#include<vector>
#include<list>



#include<set>
#include<map>

int main()
{

    std::vector v ={1,2,3,4,5};

    auto ite = v.begin();

    //不一定 之前的迭代器还有用 :  有可能数组经过扩容,原来的地址不能用了,迭代器就失效了 
    v.push_back(1);

    //尾部删除 迭代器 不会失效
    v.pop_back();
   
   //不一定
   //不扩容:位置前的迭代器不失效 ,位置后的失效
   //扩容:全部失效
   v.insert(v.begin() + 1,99);



   //位置前的不失效,位置后的失效
   v.erase(v.begin()+2);



    std::list<int> l;
    //迭代器不会失效





    //set map
    // 一定会失效,因为他们作为平衡二叉树 要维持平衡,增加和删除 一定会动其他的迭代器


    //开发过程中,迭代器经过的,默认已经失效了,不去重复使用




    return 0;
}